/*
 * @Date: 2024-03-22 11:13:59
 * @Autor: 叶世超
 * @LastEditors: 叶世超 yesc163@163.com
 * @LastEditTime: 2024-04-12 09:47:22
 * @FilePath: \reslib-web\src\utils\dateFormat.ts
 * @Description: 描述
 * @version: 版本
 */
export default class FormatDate {
  formatDate(date: Date, fmt: string): string {
    const opt: { [key: string]: string } = {
      'y+': date.getFullYear().toString(), // 年
      'M+': (date.getMonth() + 1).toString(), // 月
      'd+': date.getDate().toString(), // 日
      'h+': date.getHours().toString(), // 时
      'm+': date.getMinutes().toString(), // 分
      's+': date.getSeconds().toString() // 秒
    }
    for (const k in opt) {
      const ret = new RegExp('(' + k + ')').exec(fmt)
      if (ret) {
        if (/(y+)/.test(k)) {
          fmt = fmt.replace(ret[1], opt[k].substring(4 - ret[1].length))
        } else {
          fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')))
        }
      }
    }
    return fmt
  }
}
